<?php

/**
 * @author Dingo
 */
class Form_Strona {

    private $form;

    public function __construct() {
        $Config = array(
            // Default fields size
            'size' => 35,
            // Default fields error css
            'css_error' => 'fields_error',
            'template_open' => '<div class="form_row">',
            'template_label' => '<label>|LABEL|</label>',
            'template_field' => '|FIELD|',
            'template_error' => '<BR><font class="error">- |ERROR|</font>',
            'template_close' => '</div>',
            'template_line' => "\n",
            'template_field_one' => '<div class="form_row">|LABEL||FIELD|</div>'
        );
        $form = & new Form_AuriumForm($Config);
        $this->form = $form;
    }

    public function generujStrone($strona) {
        $id = array(
            'type' => 'hidden',
            'name' => 'id',
            'value' => isset($strona['id']) ? $strona['id'] : null);

        $url = array(
            'label' => 'URL*:',
            'type' => 'text',
            'name' => 'url',
            'value' => htmlspecialchars(isset($_POST['url']) ? $_POST['url'] : $strona['url']));

        $szablon = array(
            'label' => 'Szablon*:',
            'type' => 'text',
            'name' => 'szablon',
            'value' => htmlspecialchars(isset($_POST['szablon']) ? $_POST['szablon'] : $strona['szablon']));

        $this->form->SetData(array($url, $szablon, $id));
        $formularz = $this->form->ShowFields();
        return $formularz;
    }

    public function generujRozmieszczenieModulow($moduly, $listaWszystkichModulow) {
        $wybierzModul = array(
            'label' => 'Wybierz moduł:',
            'type' => 'selectbox',
            'name' => 'wybierzModul',
            'extras' => 'id="wybierzModul"',
            'items' => $listaWszystkichModulow
        );

        $formularz = $this->form->OneField($wybierzModul);
        /**
         * Generuje 10 divów z możliwością dołączania modulów
         */
        for ($i = 1; $i <= 10; $i++) {
            $formularz .= '<div class="moduly" id="moduly' . $i . '"><label>{}Położenie ' . $i . '{}:</label>';

            $dodajWiecej = array(
                'type' => 'button',
                'label' => ' ',
                'value' => 'Dodaj wybrany moduł',
                'subtype' => 'button',
                'extras' => 'onClick="dodajModul(' . $i . ')"'
            );

            /* Dodawanie modułów pobranych z bazy lub z tablicy POST */
            /**
             * modyły = array(0=>array(0,1,2...),...,10=>array(0,1,2...))
             */
            if (is_array($moduly[$i])) {
                foreach ($moduly[$i] as $v) {
                    $formularz .= '<div class="form_row"><label>Nazwa modułu:</label>' . $v . '&nbsp;' .
                            '<input type="hidden" name="moduly[' . $i . '][]" / value="' . $v . '" />' .
                            '<input type="button" value="Usuń" name="modul_del" ' .
                            'onClick="$(this).parent().slideUp(\'slow\', function() ' .
                            '{ $(this).remove() } );return false;"></div>';
                }
            }

            $formularz .= '</div>';
            $formularz .= $this->form->OneField($dodajWiecej);
        }
        return $formularz;
    }

    /**
     *
     * @param <type> $action link do akcji w znaczniku form
     * @return <type> Zwraca otwarcie forma
     */
    public function otworzForma($action) {
        $formularz = '<div class="form">';
        $formularz .= $this->form->OpenForm(array('m' => 'p',
            'action' => $action));
        return $formularz;
    }

    public function zamknijForma() {
        $przyciski = array(
            'type' => 'button',
            'subtype' => array('submit', 'button'),
            'value' => array('Wyślij', 'Anuluj'),
            'extras' => array('', 'onClick="window.location = \'/cms/strona/\';"'),
            'alone' => true
        );
        $formularz = $this->form->OneField($przyciski);
        $formularz .= $this->form->CloseForm();
        $formularz .= '</div>';
        return $formularz;
    }

}

?>
